import {
	getToken,
	setToken
} from './token';
import {
	baseUrl
} from '@/common/env';
export default function request(params) {
	// console.log(params)
	let header = {
		'content-type': 'application/json;charset=UTF-8'
	};
	// 检查是否有token
	const token = getToken();
	if (token) {
		header.token = token;
	}
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseUrl + params.url,
			header: {},
			withCredentials: true,
			data: params.data,
			method: params.method,
			// 设置为json，返回后uni.request会对数据进行一次JSON.parse
			dataType: 'json',
			// 此参数无需处理，因为5+和支付宝小程序不支持，默认为text即可
			responseType: 'text',
			showLoading: true, // 是否显示请求中的loading
			loadingText: '请求中...',
			loadingTime: 800, // 在此时间内，请求还没回来的话，就显示加载中动画，单位ms
			timer: null, // 定时器
			originalData: false, // 是否在拦截器中返回服务端的原始数据，见文	档说明
			loadingMask: true, // 展示loading的时候，是否给一个透明的蒙层，防止触摸穿透
			timeout: 15000,
			success: res => {
				// 如果需要刷新token，重新保存token
				if (Reflect.has(res.header, 'Refresh-Token')) {
					setToken(res.header['Refresh-Token']);
				}
				let resData = res.data;
				resolve(resData);
			},
			fail: err => {
				uni.showToast({
					title: "请检查网络连接后重试~",
					icon: "none",
				});
				reject(err);
			},
		});
	});
}
